<?xml version="1.0" encoding="utf-8"?>
<!--
                                                                                     
 h       t     t                ::       /     /                     t             / 
 h       t     t                ::      //    //                     t            // 
 h     ttttt ttttt ppppp sssss         //    //  y   y       sssss ttttt         //  
 hhhh    t     t   p   p s            //    //   y   y       s       t          //   
 h  hh   t     t   ppppp sssss       //    //    yyyyy       sssss   t         //    
 h   h   t     t   p         s  ::   /     /         y  ..       s   t    ..   /     
 h   h   t     t   p     sssss  ::   /     /     yyyyy  ..   sssss   t    ..   /     
                                                                                     
	<https://y.st./>
	Copyright © 2016 Alex Yst <mailto:copyright@y.st>

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program. If not, see <https://www.gnu.org./licenses/>.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="https://y.st./en/weblog/2016/11-November/03.xhtml" />
		<title>Previous coding efforts are paying off. &lt;https://y.st./en/weblog/2016/11-November/03.xhtml&gt;</title>
		<link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png" />
		<link rel="stylesheet" type="text/css" href="/link/basic.css" />
		<link rel="stylesheet" type="text/css" href="/link/site-specific.css" />
		<script type="text/javascript" src="/script/javascript.js" />
		<meta name="viewport" content="width=device-width" />
	</head>
	<body>
		<nav>
			<p>
				<a href="/en/">Home</a> |
				<a href="/en/a/about.xhtml">About</a> |
				<a href="/en/a/contact.xhtml">Contact</a> |
				<a href="/a/canary.txt">Canary</a> |
				<a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
				<a href="/en/opinion/">Opinions</a> |
				<a href="/en/coursework/">Coursework</a> |
				<a href="/en/law/">Law</a> |
				<a href="/en/a/links.xhtml">Links</a> |
				<a href="/en/weblog/2016/11-November/03.xhtml.asc">{this page}.asc</a>
			</p>
			<hr/>
			<p>
				Weblog index:
				<a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
				<a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
				<a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
			</p>
			<hr/>
			<p>
				Jump to entry:
				<a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
				<a rel="prev" href="/en/weblog/2016/11-November/02.xhtml">&lt;Previous</a>
				<a rel="next" href="/en/weblog/2016/11-November/04.xhtml">Next&gt;</a>
				<a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
			</p>
			<hr/>
		</nav>
		<header>
			<h1>Previous coding efforts are paying off.</h1>
			<p>Day 00607: Thursday, 2016 November 03</p>
		</header>
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2016/11/03.jpg" alt="My place of employment" class="weblog-header-image" width="811" height="480" />
<p>
	Current countdowns:
</p>
<ul>
	<li>237 scheme-specific <abbr title="Uniform Resource Identifier">URI</abbr>-parsing classes to write and add to <a href="https://git.vola7ileiax4ueow.onion/y.st./include.d/releases">include.d</a></li>
	<li>1 free elective left in my associate degree program</li>
	<li>4 free electives left in my bachelor degree program</li>
</ul>
<p>
	Topics for essays that I want to write outside of school:
</p>
<ul>
<li>How the <abbr title="GNU &quot;Free&quot; Documentation License">GFDL</abbr> isn&apos;t a free license, and is effectively nonfree even when invariant sections aren&apos;t used</li>
<li>How the telephone number system is screwy</li>
<li>How postpaid mobile plans are bad for customers</li>
<li>How connections using &quot;untrusted&quot; <abbr title="Transport Layer Security">TLS</abbr> certificates are more trustworthy than connections without any <abbr title="Transport Layer Security">TLS</abbr> certificate at all</li>
<li>The importance of free software</li>
<li>The importance of free media</li>
</ul>
<p>
	Even though exhausted from lack of sleep, I was able to finish seven of my <abbr title="Uniform Resource Identifier">URI</abbr> classes today (<code>acap:</code>, <code>acct:</code>, <code>acr:</code>, <code>adiumxtra:</code>, <code>http:</code>, <code>https:</code>, and <code>shttp:</code>).
	That first trio of classes that I worked on the other day gave me a pessimistic view of the time frame of my project.
	The problem is that the two schemes that those three classes represent don&apos;t follow the basic <abbr title="Uniform Resource Identifier">URI</abbr> grammar.
	I had to invent the parser for them from scratch.
	However, most <abbr title="Uniform Resource Identifier">URI</abbr> schemes <strong>*do*</strong> obey the rules, and when they obey the rules, I already have the framework.
	Probably over six months ago, I built a powerful generic <abbr title="Uniform Resource Identifier">URI</abbr> parser and validator.
	I also built a layer on top of that parse/validator, designed to sit under thin scheme-specific classes to do most of the heavy lifting.
	As long as a <abbr title="Uniform Resource Identifier">URI</abbr> scheme&apos;s syntax respects the rules laid out in <abbr title="Request for Comments">RFC</abbr> 3986, I can reuse a lot of my code so I don&apos;t have to rewrite it.
</p>
<p>
	I started working on the class for dealing with the <code>cap:</code> scheme, but that&apos;s when I put down my code for the day.
	The bizarre syntax of that scheme doesn&apos;t differentiate between the path and the query, allowing question marks to show up anywhere within the substring composed of the two.
	Also within this substring are allowed &quot;@&quot; symbols and colons, which <abbr title="Request for Comments">RFC</abbr> 3986 allow in the path but not in the query.
	I&apos;m going to have to figure out what to do with the quirky syntax, but I&apos;m too tired to deal with that right now.
	I&apos;ll probably have the scheme-specific class encode something, though I&apos;m not sure yet if it&apos;ll encode the &quot;@&quot; symbols and colons or the question marks.
	I&apos;ll probably end up encoding the &quot;@&quot; symbols and colons, as that&apos;ll be easier, but I&apos;ll only encode them in the query string, not the path string.
</p>
<p>
	My boss told me to bring in my documentation to prove my legal right to employment in this country today, but it seems that they actually wanted my to provide a printed scan of it, so I&apos;ll bring that by tomorrow when I come in for my shift.
	Last time, they wanted to see the original documents, if I recall.
	They also gave me some paperwork to fill out and bring back as well.
	According to the paperwork that my boss filled out, today marks the point at which I&apos;ve officially become employed.
	They tried to find me some work uniform shirts, but they&apos;re out of my sized.
	They ended up giving me a slightly-too-small manager uniform, despite the fact that I&apos;m not a manager, simply because it was the largest size that they had on hand.
	Also, I was assigned a <abbr title="personal identification number">PIN</abbr> to use when clocking in.
	Last time, much to my frustration, they insisted that my <abbr title="personal identification number">PIN</abbr> be the final four digits of my Social Security number.
	This time, they set my <abbr title="personal identification number">PIN</abbr> to be the final four digits of my Google Voice number.
	It&apos;s not great, but it&apos;s a huge improvement.
</p>
<p>
	I really should stay up until 22:00 so that I can check on my courses and try to get them switched, but I&apos;m far too tired for that and I have work early-ish in the morning.
	I&apos;ll either check on my courses when I wake up (if I wake up before my alarm goes off) or I&apos;ll check on them when I get home from work.
</p>
<p>
	My <a href="/a/canary.txt">canary</a> still sings the tune of freedom and transparency.
</p>
		<hr/>
		<p>
			Copyright © 2016 Alex Yst;
			You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
			If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
			My address is in the source comments near the top of this document.
			This license also applies to embedded content such as images.
			For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
		</p>
		<p>
			<abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
			This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F11-November%2F03.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.1</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F11-November%2F03.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
		</p>
	</body>
</html>

